云主机同步时间策略

简介

云平台对时间一致性敏感,在某些场景下如果时间不一致,将会引起业务异常。本章从两大主流系统的内部时间配置。

云主机时间同步原理

KVM虚拟化在创建虚机的时候,默认使用底层物理机的时间作为KVM虚拟机的VBIOS时间,虚机在启动的时候,Windows和Linux类型的云主机均会从VBIOS时钟源获取当前物理机时间的信息。

Linux虚拟机只会在启动的时候读取VBIOS时间,之后不在同步(可用命令 hwclock --hctosys 做强制同步);Windows会定期与VBIOS同步时钟,物理机时间发生变化,VBIOS时间也会跟着变化,进而Windows 内核中的时间会与VBIOS进行时间同步。

注:当物理机时间超前Windows云主机系统时间时,Windows云主机会跟随物理机时间同步,当物理机时间滞后Windows云主机系统时间时,Windows云主机不会跟随物理机时间同步。

最佳实践

Linux云主机时间配置(以CentOS 7为例)

Linux 默认机制是云主机根据自身的时钟频率走时。建议重要的业务配置时间源进行时间同步,时钟源可选择企业自身的时间服务器或公网时间源。配置方式为:

1.修改/etc/chrony.conf 配置文件内容,末尾添加 server 时钟服务ip iburst 保存退出。

2.重启chronyd服务,检查时间同步是否正常。

Windows云主机时间配置(以Windows 2012R2为例)

Windows 默认机制是虚拟机定期与VBIOS同步时钟,对于物理机时间的改变更加敏感。建议:

  1. 虚拟机内部指定多个时间源;
  2. 通过修改注册表默认的同步频率来保证时间的准确性;

修改注册表时间同步频率,推荐15min周期同步一次,可以根据业务场景进行修改。

打开cmd 执行regedit

image-20230613161241595

#通过调整SpecialPollInterval 键值同步参数,例如调整每15分钟自动同步一次时间,从而一定程度上减小VBIOS时钟改变带来的影响。

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpClient

image-20230613161258719

建议:

  1. 云主机内部指定多个时间源
  2. 修改注册表默认的同步频率来保证时间的准确性
  3. 云平台版本大于3.10.4版本以上,在云平台的云主机详情页,高级配置信息中关闭时间同步,停止定时同步物理机时间

图形用户界面, 文本  描述已自动生成

results matching ""

    No results matching ""